package com.chaopei.base2;

import java.util.Timer;
import java.util.TimerTask;

/**
 * @Author Corday 天涯
 * @Date 2022/3/6 20:57
 * 定时任务应用:每天允许用户密码输入五次,凌晨清空,定时更新数据库等
 */
public class MyTimer {
    //记录运行次数
    int num = 0;
    public void timerTask() {
        //创建一个就相当于开始一个新的线程
        //设置定时任务名称,守护线程
        Timer timer = new Timer("定时任务");
        //直接匿名内部类创建多线程定时任务
        TimerTask timerTask = new TimerTask() {
            @Override
            public void run() {
                //要完成的任务
                num += 1;
                System.out.println("轻轻地我走了:" + num);
                if (num > 5) {
                    timer.cancel();
                    System.out.println("定时结束!");
                }
            }
        };
        timer.schedule(timerTask, 1000, 500);
    }
}

//创建定时多线程类
class MyTask extends TimerTask {
    //记录运行次数
    private int num = 0;
    private Timer timer;
    //通过构造器传入外部的Timer
    public  MyTask(Timer timer){
        this.timer = timer;
    }
    @Override
    public void run() {
        //要完成的任务
        num += 1;
        System.out.println("轻轻地我走了:" + num);
        if (num > 5) {
            System.out.println("定时结束!");
            timer.cancel();
        }
    }
}

//执行
class MyMaina {
    public static void main(String[] args) {
        //MyTimer myTimer = new MyTimer();
        //myTimer.timerTask();
        //启动定时任务的工具类
        Timer timer = new Timer();
        MyTask myTask = new MyTask(timer);
        //点亮多线程定时器
        timer.schedule(myTask,500,300);
    }
}